Automated Software Architectural Synthesis using Patterns: A Cooperative Coevolution Approach
نویسندگان
چکیده
In software architecting process, architects use architectural patterns as reusable architectural knowledge for architectural synthesis. However, it has been observed that the resulting architecture does not always conform to the initial architectural patterns employed. Architectural synthesis using architectural patterns is also recognized as a challenging task, especially for novice architects due to lack of experience. In this paper, we propose a cooperative coevolution approach to automate architectural synthesis using architectural patterns. We first analyze several common architectural patterns and the constraints when using them. We then extend existing architectural synthesis with patterns based on the results of this analysis. We also describe the definition process for pattern metrics, which are used for automated architectural synthesis, from pattern constraints. Finally, we map the extended architectural synthesis to a cooperative coevolution model, which can optimize the resulting architectural solutions and avoid the violations to the pattern constraints automatically. Myx architectural pattern is used as an example to illustrate our
منابع مشابه
A Cooperative Coevolution Approach to Automate Pattern-based Software Architectural Synthesis
To reuse successful experience in software architecture design, architects use architectural patterns as reusable architectural knowledge for architectural synthesis. However, it has been observed that the resulting architecture does not always conform to the initial architectural patterns employed. Architectural synthesis using architectural patterns is also recognized as a challenging task, e...
متن کاملCo-evolving Pattern Synthesis and Class Responsibility Assignment in Architectural Synthesis
Architectural synthesis (AS) activity plays a key role in architecture design as it essentially links the problem to the solution space. To reuse successful design experience, architects may use architectural patterns in AS to generate candidate solutions. In a pattern-based AS, there are two challenges: one is class responsibility assignment (CRA) when using specific patterns and the other is ...
متن کاملEngineering and implementing software architectural patterns based on feedback loops
A highly decentralized system of autonomous service components consists of multiple and interacting feedback loops which can be organized into a variety of architectural patterns. The highly complex nature of these loops make engineering and implementation of these patterns a very challenging task. In this paper, we present SimSOTA—an integrated Eclipse plug-in to architect, engineer and implem...
متن کاملA Formal Approach for Incorporating Architectural Tactics into the Software Architecture
Software architects principally leverage successful architectural design practices systematized in terms of architectural styles and tactics. While architectural tactics focus on particular non-functional properties, styles are typical solutions that generally coverage several aspects. The problem is that we do not yet have a formal account of how styles and tactics interact in a way that is su...
متن کاملCooperative Co-evolutionary Optimization of Software Project Staff Assignments and Job Scheduling
This paper presents an approach to Search Based Software Project Management based on Cooperative Co-evolution. Our approach aims to optimize both developers’ team staffing and work package scheduling through cooperative co-evolution to achieve early overall completion time. To evaluate our approach, we conducted an empirical study, using data from four real-world software projects. Results indi...
متن کامل